﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Entidades.Reclamos;
using WebApplication.Reclamos;

public partial class frmLibroReclamacion : System.Web.UI.Page
{
    #region ATRIBUTOS
    
    protected IControllerRecLibroReclamacion _libController;

    #endregion

    #region CONSTRUCTOR

    public frmLibroReclamacion() {
        _libController = new ControllerRecLibroReclamacion();
    }
    
    #endregion

    #region EVENTOS DEL FORMULARIO

    protected void Page_Load(object sender, EventArgs e)
    {        
        if (!IsPostBack)
        {
            lblMensaje.CssClass = "";
            CargarLocal();
            Nuevo();                        
            verificarTipo();
        }
    }

    protected void Nuevo(){
        
        txtNumeroRegistro.Enabled = true;
        cmbLocal.Enabled = true;
        txtDescripcion.Enabled = true;
        rdLibroVirtual.Enabled = true;
        txtMedida.Enabled = true;        
        txtNumHojas.Enabled = true;                
        btnGuardar.Visible = true;

        lblCodigo.Text = "Autogenerado";
        hdCodigo.Value = "";
        txtNumeroRegistro.Text = "";
        txtDescripcion.Text = "";
        txtMedida.Text = "";
        txtNumHojas.Text = "";
        rdLibroVirtual.SelectedValue = null;        
    }

    protected void verificarTipo(){
        String accion = (Session["libro_action"] == null) ? "" : Session["libro_action"].ToString();
        if (accion.Equals("visualizar"))
        {
            txtNumeroRegistro.Enabled = true;
            cmbLocal.Enabled = false;
            txtDescripcion.Enabled = false;
            rdLibroVirtual.Enabled = false;
            txtMedida.Enabled = false;
            txtNumHojas.Enabled = false;
            btnGuardar.Visible = false;
            Cargar();
        }
        else if (accion.Equals("modificar")) 
        {
            txtNumeroRegistro.Enabled = true;
            cmbLocal.Enabled = true;
            txtDescripcion.Enabled = true;
            rdLibroVirtual.Enabled = true;
            txtMedida.Enabled = true;
            txtNumHojas.Enabled = true;
            btnGuardar.Visible = true;
            Cargar();
        }              
    }

    //Cargar datos de la hoja de reclamacion
    protected void Cargar() {
        int codigo = (Session["libro_codigo"] == null) ? 0 : Convert.ToInt32(Session["libro_codigo"].ToString());
        if (codigo > 0) {            
            RecLibro lista = _libController.obtenerLibroReclamacion(codigo);

            if(lista!=null){
                lblCodigo.Text = lista.IdLibro.ToString();
                hdCodigo.Value = lista.IdLibro.ToString();
                txtNumeroRegistro.Text = lista.NumRegistro.ToString();
                cmbLocal.SelectedValue = lista.Local.IdLocal.ToString();
                txtDescripcion.Text = lista.Descripcion.ToString();                
                rdLibroVirtual.SelectedValue = (lista.flLibro) ? "1" : "0";
                if (lista.flLibro)
                {
                    txtMedida.Text = lista.Medida.ToString();
                    txtNumHojas.Text = lista.numHojas.ToString();
                }
                CargarLibro(rdLibroVirtual,null);
                
            }
        }
    }

    protected void CargarLocal()
    {
        List<GenLocal> lista = _libController.listarLocal();
        if (lista.Count > 0)
        {
            cmbLocal.DataSource = lista;
            cmbLocal.DataTextField = "nombre";
            cmbLocal.DataValueField = "idLocal";
            cmbLocal.DataBind();
            cmbLocal.Items.Insert(0, new ListItem(Constantes.STATUS_SELECT, Constantes.CODE_SELECT));
        }
        else
        {
            cmbLocal.Items.Clear();
        }
    }

    protected void CargarLibro(object sender, EventArgs e) {
        switch (rdLibroVirtual.SelectedValue) {
            case "0":
                txtMedida.Enabled = false;
                txtNumHojas.Enabled = false;
                txtMedida.CssClass = "txtFiltro txtDisabled";
                txtNumHojas.CssClass = "txtFiltro txtDisabled";
                rq1.Enabled = false;
                rq2.Enabled = false;
                val1.Enabled = false;
                break;
            case "1": 
                txtMedida.Enabled = true;
                txtNumHojas.Enabled = true;
                txtMedida.CssClass = "txtFiltro";
                txtNumHojas.CssClass = "txtFiltro";
                rq1.Enabled = true;
                rq2.Enabled = true;
                val1.Enabled = true;
                break;        
        }
    
    }

    protected Boolean Validar() {
        return true;
    }

    #endregion

    #region EVENTOS DE BOTONES

    protected void btnGuardar_Click(object sender, EventArgs e)
    {

        Boolean resultado = true;
        resultado = Validar();
        if (resultado)
        {

            String accion = (Session["libro_action"] == null) ? "" : Session["libro_action"].ToString();

            RecLibro be = new RecLibro();                        
            be.flLibro = (rdLibroVirtual.SelectedValue.Equals("1"))?true:false;
            be.NumRegistro = txtNumeroRegistro.Text;
            be.Descripcion = txtDescripcion.Text;
            be.Local.IdLocal = Int32.Parse(cmbLocal.SelectedValue);                       
            be.Medida = (be.flLibro)?txtMedida.Text:"";
            be.numHojas = (be.flLibro)?Int32.Parse(txtNumHojas.Text):0;
            

            if (accion.Equals("modificar"))
            {
                be.IdLibro = Int32.Parse(hdCodigo.Value);
                be.IdLibro = _libController.actualizarLibroReclamacion(be);                
            }
            else {             
                be.IdLibro = _libController.insertarLibroReclamacion(be);                            
            }

            if (resultado)
            {
                Session["libro_rpta"] = 1;
                Response.Redirect("frmMtoLibroReclamacion.aspx");
            }
            else
            {
                lblMensaje.Text = Constantes.MSG_ERROR;
                lblMensaje.CssClass = "lblError";
            }
        }
    }

    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        Session["libro_codigo"] = null;
        Session["libro_action"] = null;
        Session["libro_visible"] = null;
        Response.Redirect("frmMtoLibroReclamacion.aspx");
    }
    
    #endregion
}